

function ucs2TransfortoString (text) {
    return new Buffer(text, 'ucs2').toString('binary');
}

function asciiTransforBinary (text) {
    // let buf = text.buffer
    // let end = buf.indexOf(0)
    // let result = buf.slice(0,end)
    return new Buffer(text, 'ascii').toString('binary');
}

function asciiTransforUcs2 (text) {
    let buf = text.buffer
    let end = buf.indexOf(0)
    let result = buf.slice(0,end)
    return new Buffer(result, 'ascii').toString('ucs2');
}

function debounce(func, wait, immediate) {
    let timeout, args, context, timestamp, result
    const later = function() {
      // 据上一次触发时间间隔
      const last = +new Date() - timestamp
      // 上次被包装函数被调用时间间隔last小于设定时间间隔wait
      if (last < wait && last > 0) {
        timeout = setTimeout(later, wait - last)
      } else {
        timeout = null
        // 如果设定为immediate===true，因为开始边界已经调用过了此处无需调用
        if (!immediate) {
          result = func.apply(context, args)
          if (!timeout) context = args = null
        }
      }
    }
}
